<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:ui="http://java.sun.com/jsf/facelets"
      xmlns:h="http://java.sun.com/jsf/html"
      xmlns:jb="http://java.sun.com/jsf/composite/componentes"
      xmlns:f="http://java.sun.com/jsf/core"            
      xmlns:p="http://primefaces.org/ui">

    <ui:composition template="/pages/core/plantilla/plantillaPrincipal.xhtml">

        <ui:define name="contenido">    

            <h:form onsubmit="return checkSubmit();"  id="frmPrincipal">                                
                <p:panel id="pnlPrincipal" header="#{i18n['usuario.titulo']} / #{sessionMBean.titulo} #{usuarioMBean.dto.id}" style="#{applicationMBean.estiloTitulo}">
                    <h:panelGrid id="pgFormDto" columns="2" cellpadding="4">

                        <h:outputLabel value="#{i18n['usuario.descripcion']}" styleClass="label"/>
                        <p:inputText label="#{i18n['usuario.descripcion']}" 
                                     value="#{usuarioMBean.dto.descripcion}"  readonly="#{sessionMBean.accion == 3}"
                                     required="true" size="50" style="#{applicationMBean.estiloObligatorio}">
                            <f:validateLength maximum="100" minimum="5" />
                        </p:inputText>

                        <h:outputLabel value="#{i18n['usuario.login']}" styleClass="label"/>
                        <p:inputText label="#{i18n['usuario.login']}"  value="#{usuarioMBean.dto.login}"  readonly="#{sessionMBean.accion == 3}"
                                     required="true" size="40" style="#{applicationMBean.estiloObligatorio}">
                            <f:validateLength maximum="30" minimum="5" />
                        </p:inputText>

                        <h:outputLabel value="#{i18n['usuario.contrasena']}"  styleClass="label" rendered="#{sessionMBean.accion == 1}"/>
                        <p:password value="#{usuarioMBean.dto.contrasenaActual}" feedback="true" label="#{i18n['usuario.label.contrasena']}" required="true"
                                    rendered="#{sessionMBean.accion == 1}" size="40" style="#{applicationMBean.estiloObligatorio}"
                                    weakLabel="#{i18n['usuario.msj.contrasena.debil']}" goodLabel="#{i18n['usuario.msj.contrasena.regular']}" 
                                    promptLabel="#{i18n['usuario.msj.contrasena.requerido']}" strongLabel="#{i18n['usuario.msj.contrasena.fuerte']}">
                            <f:validateLength maximum="20" minimum="5" />
                        </p:password>
                        
                        <h:outputLabel value="#{i18n['usuario.email.laboral']}" styleClass="label"/>
                        <p:inputText label="#{i18n['usuario.email.laboral']}" onkeypress="return fn_validaTecla('email',this)"
                                     value="#{usuarioMBean.dto.emailLaboral}"  readonly="#{sessionMBean.accion == applicationMBean.ver}"
                                     required="true" size="50" style="#{applicationMBean.estiloObligatorio}">
                            <f:validateLength maximum="50"/>
                        </p:inputText>

                        <h:outputLabel styleClass="label" value="#{i18n['usuario.rol']}"/>                    
                        <p:selectOneMenu value="#{usuarioMBean.dto.rolDto}"  converter="rolConvert"                                     
                                         style="#{applicationMBean.estiloObligatorio}"
                                         disabled="#{sessionMBean.accion == 3}">
                            <f:selectItems value="#{usuarioMBean.rolesActivos}" var="dto" itemLabel="#{dto.descripcion}" itemValue="#{dto}" />
                            <f:ajax />
                        </p:selectOneMenu>
                        
                        
                        
                        

                        <h:outputLabel styleClass="label" value="#{i18n['usuario.bloqueado']}"/>                    
                        <p:selectBooleanCheckbox value="#{usuarioMBean.dto.bloqueado}"  styleClass="txtCampo" disabled="#{sessionMBean.accion == 3}"/>

                        <h:outputLabel styleClass="label" value="#{i18n['general.label.activo']}"/>                    
                        <p:selectBooleanCheckbox value="#{usuarioMBean.dto.estado}"  styleClass="txtCampo" disabled="#{sessionMBean.accion == 3}"/>

                        


                    </h:panelGrid>      
                    
                    <h:outputLabel value="#{i18n['general.label.campos.auditoria']}" styleClass="subTitulo" rendered="#{usuarioMBean.dto.id!=null}"/>
                    <p:separator rendered="#{usuarioMBean.dto.id!=null}"/>
                    <h:panelGrid id="pgCamposAuditoria" columns="6" cellspacing="10" rendered="#{usuarioMBean.dto.id!=null}">
                        <h:outputLabel styleClass="label" value="#{i18n['general.label.usuario.creacion']}"/>
                        <h:outputLabel styleClass="txtCampo" value="#{usuarioMBean.dto.usuarioCreacionDto.descripcion}"/>
                        <h:outputLabel styleClass="label" value="#{i18n['general.label.fecha.creacion']}"/>
                        <h:outputLabel styleClass="txtCampo" value="#{usuarioMBean.dto.fechaCreacion}">
                            <f:convertDateTime pattern="#{applicationMBean.formatoFechaHoraSegundos}"  timeZone="#{applicationMBean.timeZone}"/>
                        </h:outputLabel>                            
                        <h:outputLabel styleClass="label" value="#{i18n['general.label.terminal.creacion']}"/>
                        <h:outputLabel styleClass="txtCampo" value="#{usuarioMBean.dto.terminalCreacion}"/>
                        <h:outputLabel styleClass="label" value="#{i18n['general.label.usuario.modificacion']}"/>
                        <h:outputLabel styleClass="txtCampo" value="#{usuarioMBean.dto.usuarioDto.descripcion}"/>
                        <h:outputLabel styleClass="label" value="#{i18n['general.label.fecha.modificacion']}"/>
                        <h:outputLabel styleClass="txtCampo" value="#{usuarioMBean.dto.fecha}">
                            <f:convertDateTime pattern="#{applicationMBean.formatoFechaHoraSegundos}"  timeZone="#{applicationMBean.timeZone}"/>
                        </h:outputLabel>                            
                        <h:outputLabel styleClass="label" value="#{i18n['general.label.terminal.modificacion']}"/>
                        <h:outputLabel styleClass="txtCampo" value="#{usuarioMBean.dto.terminal}"/>
                    </h:panelGrid>
                    <f:facet name="footer">                        
                        <p:commandButton title="#{i18n['general.button.guardar.tip']}" accesskey="#{applicationMBean.keyGuardar}" ajax="false"
                                         icon="ui-icon ui-icon-disk" rendered="#{sessionMBean.accion != applicationMBean.ver}"
                                         onclick="return confirm('#{i18n.general_mensaje_confirmacion}');"
                                         style="#{applicationMBean.estilosBtnGuardar}"
                                         value="#{i18n['general.button.guardar']}" 
                                         action="#{usuarioMBean.guardar}">                                    
                        </p:commandButton>                        

                        <p:commandButton title="#{i18n['general.button.atras.tip']}" accesskey="#{applicationMBean.keyRetroceder}" ajax="false"
                                         icon="ui-icon ui-icon-arrowreturnthick-1-w" immediate="true"
                                         value="#{i18n['general.button.atras']}"
                                         style="#{applicationMBean.estilosBtnRetroceder}"
                                         action="#{usuarioMBean.retroceder}">                                    
                        </p:commandButton>

                        <p:commandButton title="#{i18n['bitacora.ver.historial']}"
                                         icon="ui-icon ui-icon-calculator"
                                         style="#{applicationMBean.estilosBtnHistorial}"
                                         value="#{i18n['bitacora.ver.historial']}"                                                                                                           
                                         ajax="true"
                                         rendered="#{usuarioMBean.dto.id!=null}"
                                         oncomplete="dlgBitacoraEntidad.show()"                                                       
                                         update=":frmPopupBitacoras:pgFormPopupBitacoras"
                                         actionListener="#{usuarioMBean.verBitacora}">                                    
                        </p:commandButton>  
                        <p:commandButton title="#{i18n['key.entidad.propietario']}"
                                         icon="ui-icon ui-icon-locked"
                                         value="#{i18n['key.entidad.propietario']}"    
                                         style="#{applicationMBean.estilosBtnPropietarios}"
                                         ajax="true"
                                         rendered="#{usuarioMBean.dto.id!=null}"
                                         oncomplete="dlgPropietariosEntidad.show()"                                                       
                                         update=":frmPopupPropietarios:pgFormPopupPropietarios"
                                         actionListener="#{usuarioMBean.verPropietario}">                                    
                        </p:commandButton>  
                        
                        <p:commandButton title="#{i18n['general.button.nuevo.tip']}" accesskey="#{applicationMBean.keyNuevo}"
                                         icon="ui-icon ui-icon-plus" rendered="#{usuarioMBean.dto.id!=null}"
                                         value="#{i18n['general.button.nuevo']}" 
                                         ajax="false"                   
                                         style="#{applicationMBean.estilosBtnNuevo}" 
                                         actionListener="#{usuarioMBean.nuevo}">                                    
                        </p:commandButton>   

                    </f:facet>
                </p:panel>
               

            </h:form>
            <p:dialog id="idDlgBitacoraEntidad" header="#{i18n['bitacora.titulo']}" widgetVar="dlgBitacoraEntidad" resizable="false"  
                      width="900" height="200" modal="true">                        
                <ui:include src="/pages/bitacora/bitacoras.xhtml" /> 
            </p:dialog>
            
            <p:dialog id="idDlgPropietarioEntidad" header="#{i18n['entidad.titulo.propietarios']}" widgetVar="dlgPropietariosEntidad" resizable="false"  
                      width="500" height="350" modal="true">            
                <p:messages id="msjDialogPropietarios" showDetail="false" autoUpdate="true" />  
                <ui:include src="/pages/propietario/propietario.xhtml" /> 
            </p:dialog>
            
        </ui:define>
    </ui:composition>
</html>
